package cn.me.alphamq.controller;

import cn.me.alphamq.service.ConsoleService;
import cn.me.alphamq.vo.Response;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 控制台的控制器
 *
 * @author f
 */
@RestController
public class ConsoleController {

    private final ConsoleService consoleService;

    public ConsoleController(ConsoleService consoleService) {
        this.consoleService = consoleService;
    }

    /**
     * 条件分页查询 topic 的信息
     *
     * @param topic topic 的名称，如果有，则查询名称包含这个字符串的 topic 的信息；否则查询所有 topic 的信息
     * @param page  页数
     * @param size  元素数
     * @return topic 信息的分页查询对象
     */
    @GetMapping("/pageQueryTopicInfo")
    public Response pageQueryTopicInfo(String topic, Integer page, Integer size) {
        return consoleService.pageQueryTopicInfo(topic, page, size);
    }

    /**
     * 列举指定 topic 下的消费者消费偏移量的信息
     *
     * @param topic 指定的 topic
     * @return 消费者消费偏移量的信息
     */
    @GetMapping("/listConsumerOffsetInfo")
    public Response listConsumerOffsetInfo(String topic) {
        return consoleService.listConsumerOffsetInfo(topic);
    }
}
